home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1146 / 1146.xpi / chrome / screengrab.jar / content / UndoSet.js < prev    next >
Text File  |  2009-03-09  |  1KB  |  44 lines

  1. screengrab.UndoSet = function() {
  2.     this.undos = new Array();
  3. }
  4. screengrab.UndoSet.prototype = {
  5.     
  6.     popAndRun : function() {
  7.         if (this.undos.length == 0) return;
  8.         var func = this.undos.pop();
  9.         func();
  10.     },
  11.     
  12.     push : function(func) {
  13.         this.undos.push(func);
  14.     },
  15.     
  16.     pushPropertyChange : function(object, property, value) {
  17.         this.undos.push(function() {
  18.             object[property] = value;
  19.         });
  20.     },
  21.     
  22.     pushRemoveEventListener : function(name, listener, parent) {
  23.         this.undos.push(function() {
  24.             parent.removeEventListener(name, listener, true);
  25.         });
  26.     },
  27.     
  28.     pushRemoveFromParent : function(child, parent) {
  29.         this.undos.push(function() {
  30.             parent.removeChild(child);
  31.         });
  32.     },
  33.     
  34.     undo : function() {
  35.         while (this.undos.length > 0) {
  36.             try {
  37.                 this.popAndRun();
  38.             } catch (error) {
  39.                 screengrab.error(error);
  40.             }
  41.         }
  42.     }
  43. }
  44.